package com.pxmeta.user.entity.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.pxmeta.party.entity.Association;
import com.pxmeta.product.entity.Shop;
import com.pxmeta.user.entity.UserRank;
import com.pxmeta.user.entity.UserStudent;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class UserDTO implements Serializable {
    private Long id;
    /** 头像 */
    @ApiModelProperty("头像")
    private String avatar;

    @ApiModelProperty(value = "头像框")
    private String avatarFrame;

    /** 昵称 */
    @ApiModelProperty("昵称")
    private String nickname;

    @ApiModelProperty("账号")
    private String account;

    @ApiModelProperty("用户名（环信用户名同）")
    private String username;

    @ApiModelProperty("性别")
    private Integer sex;

    /** 是否身份认证 */
    @ApiModelProperty("是否实名认证")
    private Integer isAuthIdentity;

    @ApiModelProperty("标签列表")
    private List<String> tags;

    @ApiModelProperty("年龄")
    private Integer age;

    @ApiModelProperty("关注数")
    private Long followCount;

    @ApiModelProperty(value = "简介")
    private String intro;

    @ApiModelProperty(value = "自我介绍")
    private String about;

    @ApiModelProperty(value = "是否是靓号")
    private Integer isBeautifulId;
    @ApiModelProperty("粉丝数")
    private Long fansCount;

    @ApiModelProperty("是否拉黑")
    private Boolean isBlock = false;

    @ApiModelProperty("访客数")
    private Integer visitorNumber;

    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;

    @ApiModelProperty("用户所在学校")
    private String schoolName;

    @ApiModelProperty(value = "公会信息")
    private Association association;


    @ApiModelProperty(value = "是否是认证主播")
    private Boolean isAnchor;

    private String tagIds;

    private String partyId;

    @ApiModelProperty(value = "是否是陪陪")
    private Boolean isAccompany;

    @ApiModelProperty(value = "是否开启个性化推荐")
    private Integer isOpenRecommend;

    @ApiModelProperty("用户注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    private Integer liveStatus;

    @ApiModelProperty(value = "用户等级")
    private UserRank userRank;


    @ApiModelProperty(value = "美食大排挡余额")
    private Integer foodStallBalance;

    @ApiModelProperty("使用中的装饰")
    private List<Shop> usedDecoration;

    @ApiModelProperty(value = "邀请码")
    private String inviteCode;
}
